package com.wicket.okrapp.web.contorller;
import com.wicket.okrapp.biz.service.dto.req.*;
import com.wicket.okrapp.biz.service.dto.res.*;
import com.wicket.okrapp.biz.service.InterfaceModeService;
import com.wicket.okrapp.common.ro.OkrResult;
import com.wicket.okrapp.integration.dto.AddMemoryBusinessDataComRespDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@RestController
@RequestMapping("/app/interfaceMode/")
public class InterfaceModeController {
    @Autowired
    InterfaceModeService  interfaceModeService;
/**
   * D3判断高中基层步骤值等(公共)
   */
    @PostMapping("judgeResetTopMidStepValueCom")
    public OkrResult<JudgeResetTopMidStepValueComRespDto> judgeResetTopMidStepValueCom(@RequestBody @Validated JudgeResetTopMidStepValueComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.judgeResetTopMidStepValueCom(reqDTO));
    }
/**
   * D3执行获取当前及下一个周期(公共)
   */
    @PostMapping("implementGetCurrentAndNextCycleCom")
    public OkrResult<ImplementGetCurrentAndNextCycleComRespDto> implementGetCurrentAndNextCycleCom(@RequestBody @Validated ImplementGetCurrentAndNextCycleComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementGetCurrentAndNextCycleCom(reqDTO));
    }
/**
   * D3执行获取当前及上一个下一个周期(公共)
   */
    @PostMapping("implementGetCurrentAndLastAndNextCycleCom")
    public OkrResult<ImplementGetCurrentAndLastAndNextCycleComRespDto> implementGetCurrentAndLastAndNextCycleCom(@RequestBody @Validated ImplementGetCurrentAndLastAndNextCycleComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementGetCurrentAndLastAndNextCycleCom(reqDTO));
    }
/**
   * D3-获取内存中业务字段(公共)
   */
    @PostMapping("obtainGetPublicFieldCacheCom")
    public OkrResult<ObtainGetPublicFieldCacheComRespDto> obtainGetPublicFieldCacheCom(@RequestBody @Validated ObtainGetPublicFieldCacheComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.obtainGetPublicFieldCacheCom(reqDTO));
    }
/**
   * D3-查询找祖先列表(公共)
   */
    @PostMapping("queryLookAncestorNodeListCom")
    public OkrResult<QueryLookAncestorNodeListComRespDto> queryLookAncestorNodeListCom(@RequestBody @Validated QueryLookAncestorNodeListComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.queryLookAncestorNodeListCom(reqDTO));
    }
/**
   * D3分布式解锁(公共)
   */
    @PostMapping("implementDistributedUnlockingCom")
    public OkrResult<ImplementDistributedUnlockingComRespDto> implementDistributedUnlockingCom(@RequestBody @Validated ImplementDistributedUnlockingComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementDistributedUnlockingCom(reqDTO));
    }
/**
   * D3分布式加锁(公共)
   */
    @PostMapping("implementDistributedLockingCom")
    public OkrResult<ImplementDistributedLockingComRespDto> implementDistributedLockingCom(@RequestBody @Validated ImplementDistributedLockingComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementDistributedLockingCom(reqDTO));
    }
/**
   * D3分布式加等待锁(公共)
   */
    @PostMapping("implementDistributedWaitLockingCom")
    public OkrResult<ImplementDistributedWaitLockingComRespDto> implementDistributedWaitLockingCom(@RequestBody @Validated ImplementDistributedWaitLockingComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementDistributedWaitLockingCom(reqDTO));
    }
/**
   * D3加分布式主题锁(公共)
   */
    @PostMapping("implementDistributedMotifLockingCom")
    public OkrResult<ImplementDistributedMotifLockingComRespDto> implementDistributedMotifLockingCom(@RequestBody @Validated ImplementDistributedMotifLockingComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementDistributedMotifLockingCom(reqDTO));
    }
/**
   * D3批量解分布式主题锁(公共)
   */
    @PostMapping("implementDistributedMotifUnlockingCom")
    public OkrResult<ImplementDistributedMotifUnlockingComRespDto> implementDistributedMotifUnlockingCom(@RequestBody @Validated ImplementDistributedMotifUnlockingComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementDistributedMotifUnlockingCom(reqDTO));
    }
/**
   * D3探测分布式锁(公共)
   */
    @PostMapping("implementProbeDistributedLockCom")
    public OkrResult<ImplementProbeDistributedLockComRespDto> implementProbeDistributedLockCom(@RequestBody @Validated ImplementProbeDistributedLockComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementProbeDistributedLockCom(reqDTO));
    }
/**
   * D3执行并发行为主题锁(公共)
   */
    @PostMapping("implementConcurrentBehaviorThemeLockCom")
    public OkrResult<ImplementConcurrentBehaviorThemeLockComRespDto> implementConcurrentBehaviorThemeLockCom(@RequestBody @Validated ImplementConcurrentBehaviorThemeLockComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementConcurrentBehaviorThemeLockCom(reqDTO));
    }
/**
   * D3新增内存业务数据(公共)
   */
    @PostMapping("addMemoryBusinessDataCom")
    public OkrResult<AddMemoryBusinessDataComRespDto> addMemoryBusinessDataCom(@RequestBody @Validated AddMemoryBusinessDataComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.addMemoryBusinessDataCom(reqDTO));
    }
/**
   * D3查询内存业务数据详情(公共)
   */
    @PostMapping("queryMemoryBusinessDataDetailCom")
    public OkrResult<QueryMemoryBusinessDataDetailComRespDto> queryMemoryBusinessDataDetailCom(@RequestBody @Validated QueryMemoryBusinessDataDetailComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.queryMemoryBusinessDataDetailCom(reqDTO));
    }
/**
   * D3通用分段查询业务数据对象(公共)
   */
    @PostMapping("implementGeneralSubsectionQueryBusinessDataCom")
    public OkrResult<ImplementGeneralSubsectionQueryBusinessDataComRespDto> implementGeneralSubsectionQueryBusinessDataCom(@RequestBody @Validated ImplementGeneralSubsectionQueryBusinessDataComReqDto reqDTO){
    return OkrResult.success(interfaceModeService.implementGeneralSubsectionQueryBusinessDataCom(reqDTO));
    }

}
  